<?

/**
 * Ajout d'un utilisateur automatique pour une personne
 *
 */
class Personne extends genericClass
{

  var $Pass; // :: string

  /**
   * Créé un mot de passe aléatoire pour l'utilisateur.
   *
   * @return string
   */
  function makePassword($i=0){
    if ($i==8) return "";
    else
      {
	$Caracteres = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
	$Nombres = "0123456789";
	$CharOuNbr = rand(0,1);
	if ($CharOuNbr == 0)
	  {
	    $Char = rand(0,strlen($Caracteres)-1);
	    return $Caracteres[$Char] . $this->makePassword($i+1);
	  }
	else
	  {
	    $Nbr = rand(0,strlen($Nombres)-1);
	    return $Nombres[$Nbr] . $this->makePassword($i+1);
	  }
      }
  }

  /**
   * Renvoie le mot de passe précédemment affecté à $this->Pass.
   *
   * @return string
   */
  function getPass()
  {
    return $this->Pass;
  }


  /**
   * Créé l'utilisateur correspondant à la personne
   *
   * @return Objet:Systeme/Utilisateur
   */
  function makeUser() {
    $this->Pass = $this->makePassword();
    $Utilisateur = genericClass::createInstance("Systeme","User");
    $Utilisateur->Set("Nom",$this->Get("Nom")); 
    $Utilisateur->Set("Prenom",$this->Get("Prenom")); 
    $Utilisateur->Set("Mail",$this->Get("Mail"));
    $Utilisateur->Set("Login",$this->Get("Mail"));
    $Utilisateur->Set("Adresse",$this->Get("Adresse"));
    $Utilisateur->Set("Tel",$this->Get("Tel"));
    $Utilisateur->Set("CodPos",$this->Get("CodPos"));
    $Utilisateur->Set("Ville",$this->Get("Ville"));
    $Utilisateur->Set("Adresse",$this->Get("Adresse"));
    $Utilisateur->Set("Pass",$this->Pass);
    $Utilisateur->Set("Admin","0");
    $Utilisateur->AddParent("Systeme/Group/2");
    return $Utilisateur;
  }
  
  /**
   * Ajoute la vérification appdes paramètres utilisateur (surtout les mails)
   *
   * @return bool
   */
  function Verify($need_user=0) {
    if ($need_user==1 && genericClass::Verify()) {
      $Utilisateur = $this->makeUser();
      $VerificationOK = $Utilisateur->Verify();
      $this->Error = $Utilisateur->Error;
      return $VerificationOK;
    }
    return genericClass::Verify();
  }


 /**
   * Verification supplementaire pour validation du dossier H2O
   *
   * @return boolean
   */function isCorrect() {
       $Result = true;
       $Name = $this->Prenom . " " . $this->Nom;
       if ( empty($this->Pays) ) {
         $Result = false;
         $this->addError(array("Message" => "Le pays de ". $Name . " n'est pas renseign&eacute;") );
         
       }
       /*       if ( empty($this->NumPassePort) ) {
         $Result = false;
         $this->addError(array("Message" => "Le num&eacute;ro de passeport de ". $Name . " n'est pas renseign&eacute;") );
	 }*/
       if ( empty($this->DateNaissance) ) {
           $Result = false;
           $this->addError(array("Message" => "La date de naissance de ". $Name . " n'est pas renseign&eacute;") );
       }

       return $Result;
   }

  
  /**
   * Surcharge de l'enregistrement pour ajouter un utilisateur et envoyer un mail
   *
   * @return bool
   */function Save($need_user=0) {
    if ($need_user==1 && $this->Verify(1)) {
      $Utilisateur = $this->makeUser();
      $Utilisateur->Save();
    }
    if ( $need_user==1 ) {
      $this->Set("Utilisateur",$Utilisateur->Get("Id"));
    }
    genericClass::Save();
    if ( $need_user==1 ) {
        require_once("Class/Lib/Mail.class.php");
        
        $Mail= new Mail();
        $Mail->Subject("(H2O Voyage) Inscription sur le site");
        $Mail->From("noreply@h2ovoyage.com");
        $Mail->ReplyTo("noreply@h2ovoyage.com");
        $Mail->To($this->Get("Mail"));
        $bloc = new Bloc();
        $mailContent =
                              " Bonjour,<br/>
                     vous recevez ce courrier car vous vous &ecirc;tes r&eacute;cemment
                     inscrit sur le site h2ovoyage.com.<br/><br/>
                     Pour pouvoir plus facilement vous connecter au site et v&eacute;rifier
                     vos dossiers, voici le mot de passe qui vous
                     permettra d'acc&eacute;der à votre compte client :<br/>
                     <hr/>
                     MOT DE PASSE : " . $this->Pass . "<br/>
                     <hr/>";
        $bloc->setFromVar("MailBout|Inscription sur le site|http://www.h2ovoyage.com/Skins/H2O/Img/Logo.jpg|http://www.h2ovoyage.com",$mailContent,
                          array("BEACON"=>"BLOC"));
        $bloc->init(new Process());
        
        $Mail->Body($bloc->Affich());

        $Mail->Send();
    }
    return true;
  }


};

?>
